package com.wing.cabinet.model.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.wing.cabinet.model.entity.UseInventoryKnife;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 刀具在用库存Form
 *
 * @author
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
public class UseInventoryKnifeForm {

    /**
     * ID
     */
    private Long id;

    /**
     * 创建者
     */
    private Long creator;

    /**
     * 修改者
     */
    private Long modifier;

    /**
     * 创建人
     */
    private String creatorName;

    /**
     * 修改人
     */
    private String modifierName;

    /**
     * 柜子id
     */
    private Long cabId;

    /**
     * sku id
     */
    private Long skuId;

    /**
     * 库存数量
     */
    private Integer quantity;

    /**
     * 企业id
     */
    private Long companyId;

    /**
     * 货道id
     */
    private Integer spaceId;

    /**
     * (0正常，1告警)
     */
    private Long status;

    /**
     * sku code
     */
    private String skuCode;

    /**
     * 柜子编码
     */
    private String cabCode;

    /**
     * 货道
     */
    private String spaceCode;

    /**
     * 设备编号
     */
    private String deviceCode;

    /**
     * 领新id
     */
    private Long cellInventoryInoutId;

    /**
     * 领新订单编号
     */
    private String orderCode;

    /**
     * useInventoryInoutId
     */
    private Long useInventoryInoutId;

    /**
     * useInventoryInoutDetailId
     */
    private Long useInventoryInoutDetailId;

    /**
     * labelCode
     */
    private String labelCode;


    public interface Add{}

    public interface Update{}

    private Long useInventoryUserId;

    private Long storageInventoryInoutId;

    private Long workOrderId;

    /**
     * 企业编码
     */
    private String enterpriseCode;


    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    protected LocalDateTime inTime;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    protected LocalDateTime outTime;

    private Integer remainingTime;


    /**
     * 寿命单位  1：小时/ 2：次数
     */
    private UseInventoryKnife.LifeUnit lifeUnit;

    private UseInventoryKnife.BusinessType businessType;

    private Integer settingTime;

    private Long processId;

    private String parentLabelCode;

    private Integer quantityParentLabel;


    private BigDecimal price;
    private Long packId;

    private String packName;
}
